// export type WallType = 'front' | 'back' | 'left' | 'right' | 'top' | 'bottom'
export enum WallType {
  FRONT = 'front',
  BACK = 'back',
  LEFT = 'left',
  RIGHT = 'right',
  TOP = 'top',
  BOTTOM = 'bottom',
}

export enum DefaultWallMaterialConfigKey {
  BOTTOM = 'pb.theme.default-wall-bottom-material',
  SIDE = 'pb.theme.default-wall-side-material',
  TOP = 'pb.theme.default-wall-top-material' ,
}

export enum DefaultWallType {
  BOTTOM = 'bottom',
  SIDE = 'side',
  TOP = 'top'
}

export enum ModelFileType {
  gltf = 'gltf',
  glb = 'glb',
  obj = 'obj',
  fbx = 'fbx',
}

export const AllowedModelFileTypeList = Object.values(ModelFileType)

export const AllowedModelFileType = AllowedModelFileTypeList.map(item => '.' + item).join(',')

export const InitialThemeIdConfigKey = 'pb.theme.initial-theme-id'

export enum EventType {
  CLICK = 'click',
}

export enum EventTypeDesc {
  click = '单击',
}

export const EventTypeList = Object.values(EventType)

export enum ActionType {
  CUSTOM = 'custom',
  OPEN_DIALOG = 'openDialog',
  PLAY_AUDIO = 'playAudio',
}

export enum ActionTypeDesc {
  custom = '自定义',
  openDialog = '弹窗展示资源',
  playAudio = '播放音频',
}

export const ActionTypeList = Object.values(ActionType)

export interface EventObject {
  name: string
  event: EventType
  action: ActionType
  function?: Function,
  metadata?: OpenDialogMetaData | PlayAudioMetaData |any
}

export interface OpenDialogMetaData {
  resourceList: {
    title: string
    content: string
    url: string
    type: number
  }[]
}

export interface PlayAudioMetaData {
  resourceList: {
    title: string
    url: string
    remark: string
  }[]
}
